﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Bxas.Utility.StringOperations
{
    public class StringConvertorWithType
    {
        public static string GetGuidAsString(Guid p) { return p.ToString(); }
        public static Guid SetGuidFromString(string p) { return new Guid(p); }

        public static string GetBoolAsString(bool p) { return p.ToString().ToLower(); }
        public static bool SetBoolFromString(string p) { return Convert.ToBoolean(p); }

        public static string GetIntAsString(int p) { return p.ToString(); }
        public static int SetIntAsString(string p) { return Convert.ToInt32(p); }

        public static string GetUintAsString(UInt32 p) { return p.ToString(); }
        public static UInt32 SetUintFromString(string p) { return Convert.ToUInt32(p); }

        public static string GetLongAsString(long p) { return p.ToString(); }
        public static long SetLongFromString(string p) { return Convert.ToInt64(p); }

        public static string GetShortAsString(short p) { return p.ToString(); }
        public static short SetShortFromString(string p) { return Convert.ToInt16(p); }

        public static string GetUshortAsString(ushort p) { return p.ToString(); }
        public static ushort SetUshortFromString(string p) { return Convert.ToUInt16(p); }

        public static string GetDateTimeAsString(DateTime p, string dateStringFormat) { return p.ToString(dateStringFormat); }
        public static DateTime SetDateTimeFromString(string p) { return Convert.ToDateTime(p); }

        public static string GetTimeSpanAsString(TimeSpan p) { return p.ToString(); }
        public static TimeSpan SetTimeSpanFromString(string p) { return TimeSpan.Parse(p); }

        public static string GetDecimalAsString(decimal p) { return p.ToString(); }
        public static decimal SetDecimalFromString(string p) { return Convert.ToDecimal(p); }

        public static string GetFloatAsString(float p) { return p.ToString(); }
        public static Single SetFloatFromString(string p) { return Convert.ToSingle(p); }

        public static string GetDoubleAsString(double p) { return p.ToString(); }
        public static double SetDoubleFromString(string p) { return Convert.ToDouble(p); }

        public static string GetByteAsString(byte p) { return p.ToString(); }
        public static byte SetByteFromString(string p) { return Convert.ToByte(p); }

        public static string GetSbyteAsString(SByte p) { return p.ToString(); }
        public static sbyte SetSbyteFromString(string p) { return Convert.ToSByte(p); }
    }
}
